package com.bookocean.controller.dto;

import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 用户档案数据传输对象（灵曜页面专用）
 * 
 * @author BookOcean
 * @since 2024-01-01
 */
@Data
public class UserProfileDto {
    
    /**
     * 用户ID
     */
    private Long userId;
    
    /**
     * 用户昵称
     */
    private String nickname;
    
    /**
     * 用户头像URL
     */
    private String avatarUrl;
    
    /**
     * 用户称号
     */
    private String title;
    
    /**
     * 个性签名
     */
    private String signature;
    
    /**
     * 用户等级
     */
    private Integer level;
    
    /**
     * 统计数据
     */
    private UserStats stats;
    
    /**
     * 用户徽章列表
     */
    private List<BadgeDto> badges;
    
    /**
     * 用户积分信息
     */
    private UserPoints points;
    
    /**
     * 创建时间
     */
    private LocalDateTime createTime;
    
    /**
     * 统计数据内部类
     */
    @Data
    public static class UserStats {
        /**
         * 总阅读书籍数
         */
        private Integer totalBooks;
        
        /**
         * 总发布书摘数
         */
        private Integer totalPosts;
        
        /**
         * 总获赞数
         */
        private Integer totalLikes;
        
        /**
         * 总评论数
         */
        private Integer totalComments;
        
        /**
         * 阅读天数
         */
        private Integer readingDays;
    }
    
    /**
     * 用户积分信息内部类
     */
    @Data
    public static class UserPoints {
        /**
         * 总积分
         */
        private Integer totalPoints;
        
        /**
         * 可用积分
         */
        private Integer availablePoints;
        
        /**
         * 更新时间
         */
        private LocalDateTime updatedAt;
    }
}
